/**
 *	@file	slot_data.h
 *	@brief	スロット　ゲームデータ定義
 *	@author	Miyuki Iwasawa
 *	@date	08.11.21
 */

#ifndef __H_SLOT_DATA_H__
#define __H_SLOT_DATA_H__

//////////////////////////////////////////////////////////////////////////
//========================================================================
//↓ここから編集可
//========================================================================
//////////////////////////////////////////////////////////////////////////
//払い出しコイン数
#define COIN_PAYOUT_BONUS	(100)
#define COIN_PAYOUT_BONG	(2)
#define COIN_PAYOUT_PIKA	(15)
#define COIN_PAYOUT_MARIRU	(10)
#define COIN_PAYOUT_REPLAY	(0)
#define COIN_PAYOUT_ZERO	(0)

#define COIN_PAYOUT_CHIKO	(20)//5
#define COIN_PAYOUT_HINO	(20)//10
#define COIN_PAYOUT_WANI	(20)//15

//ボーナスクレジットのカンスト
#define BONUS_CREDIT_MAX	(999-COIN_PAYOUT_BONUS)
//ボーナス時に取得したコイン枚数のカンスト
#define BONUS_GET_CT_MAX	(999)

//ボーナスゲーム開始時のリール初期位置
#define REEL_START_POS_CHIKO	(13)
#define REEL_START_POS_HINO		(6)
#define REEL_START_POS_WANI		(20)

//ボーナスゲームラウンド数
#define BONUS_ROUND_BIG	(15)
#define BONUS_ROUND_REG	(8)

#define BIG_BONUS_LV_LIM1	(6)
#define BIG_BONUS_LV_LIM2	(11)
#define REG_BONUS_LV_LIM1	(4)
#define REG_BONUS_LV_LIM2	(6)

//連荘有効数上限
#define CONSEC_WIN_MAX	(5)
//連荘数カウンタ上限
#define CONSEC_WIN_CT_MAX	(10)

//ボーナスゲーム終了時ストレスカウンター計算補正値
#define BONUS_END_STRESS_CORRECT_NUM	(1)

//モードチェンジ確率計算補正値
#define MODE_CHAGNE_CORRECT_NUM	(15)

//////////////////////////////////////////////////////////////////////////
//========================================================================
//↑ここまで編集可
//========================================================================
//////////////////////////////////////////////////////////////////////////

//========================================================================
//ここから下は編集不可！
//========================================================================

//リールのスピード(24を割り切れる数でないと不可)
enum{
 REEL_SPEED_DEF = 12,
 REEL_SPEED_B1 = 8,//6,
 REEL_SPEED_B2 = 12,//8,
 REEL_SPEED_B3 = 24,//12,
};

//かけるコインの数
enum{
 COIN_BET_DEF = 3,
 COIN_BET_BONUS = 1,
};

typedef struct BASIC_LOT_TBL{
	u16 prob[MODE_MAX][PRIZE_CODE_MAX];
}BASIC_LOT_TBL;
typedef struct EX_LOT_TBL{
	u16 prob[MODE_MAX][PRIZE_ST_MAX];
}EX_LOT_TBL;

typedef struct BONUS_GAME_PARAM{
	u8	auto_stop[2];
	u8	speed[2];
	u8	dir;
}BONUS_GAME_PARAM;

typedef struct BONUS_LOT_TBL{
	BONUS_GAME_PARAM	lv[3];
}BONUS_LOT_TBL;

extern const REEL_PATTERN DATA_ReelPatternNormal[REEL_MAX][REEL_PT_MAX];
extern const REEL_PATTERN DATA_ReelPatternBonus[REEL_MAX][REEL_PT_MAX];
extern const BASIC_LOT_TBL DATA_BasicLotTable[SLOT_HARD_MAX];
extern const EX_LOT_TBL DATA_ExLotTable[PRIZE_CODE_MAX];

///スーパーリーチ抽選確率テーブル
extern const u8 DATA_SuperReachTable[MODE_MAX][PRIZE_CODE_MAX];

///ボーナスゲーム
extern const BONUS_LOT_TBL DATA_BonusLotTable[CONSEC_WIN_MAX+1];

extern const u8 DATA_BonusGameReelInitPos[];
extern const u8 DATA_BonusGameReelPullInLimit[];

//喜びアイコン表示数テーブル
extern const u8 DATA_GradIconNumTable[PRIZE_CODE_MAX][WL_ICON_MAX];
//喜びアイコン１つにつき、増えるボーナス配当
extern const u8 DATA_BonusCreditTable[SLOT_HARD_MAX][REACH_CODE_MAX];
//不満アイコン表示テーブル
extern const u8 DATA_DisconIconNumTable[4][WL_ICON_MAX];
//不満アイコン１つにつき、加算されるストレスカウンター
extern const u8 DATA_StressAddTableDisconIcon[MODE_MAX];
//役を揃えられなかったとき、加算されるストレスカウンター
extern const u8 DATA_StressAddTable[MODE_MAX];
//モード移行時のストレスカウンター補正値テーブル
extern const u8 DATA_ModeChangeStressCorrectTable[MODE_MAX][MODE_MAX];
//ボーナスゲーム終了時のストレスカウンター維持基本値
extern const u8 DATA_BonusEndStressCorrectTable[3];


//モード移行抽選確率
extern const u8 DATA_ModeChangeLotTable[REACH_CODE_MAX][SLOT_HARD_MAX][MODE_MAX];
//どのモードに移行するかの抽選確率
extern const u8 DATA_NextModeLotTable[MODE_MAX][SLOT_HARD_MAX][MODE_MAX];


#endif	//__H_SLOT_DATA_H__
